package com.itc.dispatch.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.itc.dispatch.domain.vo.OaUserTreeVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 
 * @TableName oa_dept
 */
@TableName(value ="oa_dept")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class OaDept implements Serializable {
    /**
     * ID
     */
    @ApiModelProperty(value = "id")
    @JsonProperty("id")
    private String id;

    /**
     * 组织名称
     */
    @ApiModelProperty(value = "组织名称")
    @JsonProperty("name")
    private String name;

    /**
     * 组织编码
     */
    @ApiModelProperty(value = "组织编码")
    @JsonProperty("code")
    private String code;

    /**
     * 部门简称
     */
    @ApiModelProperty(value = "部门简称")
    @JsonProperty("short_name")
    private String shortName;

    /**
     * 部门缩写
     */
    @ApiModelProperty(value = "部门缩写")
    @JsonProperty("short_code")
    private String shortCode;

    /**
     * 部门类型
     */
    @ApiModelProperty(value = "部门类型")
    @JsonProperty("type")
    private String type;

    /**
     * 部门类型(名称)
     */
    @ApiModelProperty(value = "部门类型(名称)")
    @JsonProperty("type_name")
    private String typeName;

    /**
     * 部门排序
     */
    @ApiModelProperty(value = "部门排序")
    @JsonProperty("sort")
    private String sort;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    @JsonProperty("status")
    private String status;

    /**
     * 状态(名称)
     */
    @ApiModelProperty(value = "状态(名称)")
    @JsonProperty("status_name")
    private String statusName;

    /**
     * 上级部门
     */
    @ApiModelProperty(value = "上级部门")
    @JsonProperty("parent_id")
    private String parentId;

    /**
     * 上级部门(组织编码)
     */
    @ApiModelProperty(value = "上级部门(组织编码)")
    @JsonProperty("parent_id_code")
    private String parentIdCode;

    /**
     * 上级部门(组织名称)
     */
    @ApiModelProperty(value = "上级部门(组织名称)")
    @JsonProperty("parent_id_name")
    private String parentIdName;

    /**
     * 通讯录显示
     */
    @ApiModelProperty(value = "通讯录显示")
    @JsonProperty("appearintelbook")
    private String appearintelbook;

    /**
     * 通讯录显示(名称)
     */
    @ApiModelProperty(value = "通讯录显示(名称)")
    @JsonProperty("appearintelbook_name")
    private String appearintelbookName;

    /**
     * 地址薄显示
     */
    @ApiModelProperty(value = "地址薄显示")
    @JsonProperty("appearinaddbook")
    private String appearinaddbook;

    /**
     * 地址薄显示(名称
     */
    @ApiModelProperty(value = "地址薄显示(名称")
    @JsonProperty("appearinaddbook_name")
    private String appearinaddbookName;

    /**
     * 时间
     */
    @ApiModelProperty(value = "时间")
    @JsonProperty("p_date")
    private String pDate;

    /**
     * 部门下的用户信息
     */
    @ApiModelProperty(value = "部门下的用户信息")
    @TableField(exist = false)
    private List<OaUserTreeVo> userList = new LinkedList<>();

    /**
     * 子部门信息
     */
    @ApiModelProperty(value = "子部门信息")
    @TableField(exist = false)
    private List<OaDept> children = new LinkedList<>();

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}